package carroejb;

import java.sql.Timestamp;
import java.util.List;

import javax.ejb.Remote;

import entidades.Carro;

/**
 * 
 * @author Fernando Interfaz remota del EJB Carro.
 */
@Remote
public interface CarroEJBRemote {

    /**
     * El metodo AddCarro() no requiere argumentos, y este crea un objeto Carro
     * con ID equivalente al ultimo elemento existente + 1 y lo agrega a la base
     * de datos.
     */
    void addCarro(String username);

    /**
     * El metodo realiza el proceso de logeo a la pagina, agregando el username
     * a la actual sesion (digase carro).
     * 
     * @param idCarro
     *            ID del carro al que se le agrega username
     * @param username
     *            Nombre del usuario que acaba de logear
     */
    void addLogin(int idCarro, String username);

    /**
     * El metodo realiza el proceso de terminar la compra, agregando el
     * timestamp correspondiente para marcar el fin de la compra.
     * 
     * @param idCarro
     *            ID del carro a marcar
     * @param ts
     *            timestamp con la fecha y hora a marcar
     */
    void realizarCompra(int idCarro, Timestamp ts);

    /**
     * El metodo realiza una consulta SQL para obtener la lista de carros
     * 
     * @return Lista de carros en la base de datos.
     */
    List<Carro> getListCarro();

}
